home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / elecmail / cs_mac07.zip / CS-COMMO.MAC < prev    next >
Text File  |  1993-03-28  |  42KB  |  924 lines

  1.  
  2.  ┌────────────────────────────────┐
  3.  │  Chuck Seyboldt's COMMO Macro  │   CS-MAC07:CS-COMMO.MAC
  4.  └────────────────────────────────┘
  5.  
  6.   *  A new arrangement with this release.  Variables are set in a .CFG file.
  7.   *  You may rename this file to COMMO.MAC or use Commo's "/m" switch
  8.   *   (as in /mcs-commo.mac) to allow COMMO.MAC and CS-COMMO.MAC to coexist.
  9.   *  See CS-MAC.MAC for more explanations.
  10.   *
  11.      Thanks to Fred Brucker for Commo and to ...
  12.      -  Jim Bennett for many excellent macro suggestions
  13.      -  Jim Rahfeldt for macro streamlining ideas
  14.      -  Paula Stockholm for serious troubleshooting
  15.      -  Dave Legault for the ongoing ideas and support
  16.      -  My wife, Joy, for putting up with a Commo addict
  17.   *
  18.   *  With this line in COMMO.SET, Commo starts with the :start macro
  19.   *       └──┴─────> {mac=start}            Startup macro label
  20.   *
  21.   *  I use the :start/cs-macxx.cfg  tool for easy portability from one machine
  22.   *  to another.  Many directories are defined in CS-MACxx.CFG.
  23.  
  24. !    You need the edit the file you are reading  -AND-  COMMO.FON.
  25.   *  Editing is required only at the  *END*  of CS-COMMO.MAC.
  26.   *
  27. !    Edit the .FON links at the _very_ end of this file [^PgDn].
  28. !    Please edit the autopilot before enabling it with "setv auto,y".
  29.   *  There is no other required editing in the CS-MAC series.
  30.  
  31.  ┌─────────────────┐
  32.  │  Startup Macro  │    In COMMO.SET, {mac=start}  Startup macro label
  33.  └─────────────────┘
  34.  
  35.  {:start}
  36.          {clea}
  37.          {setv ver,07}                          ;Version level set here
  38.          {ifex %_hom%cs-mac*.cfg,,new_user}     ;If no .CFG exists, make one
  39.          {ifex %_hom%cs-mac%ver%.cfg,,upgrade}  ;If old .CFG exists, upgrade
  40.          {rope %_hom%cs-mac%ver%.cfg,alcc}      ;open .CFG file
  41.  {:init_loop}
  42.          {read line}                            ;read CS-MACxx.CFG
  43.          {inst line,*}   {ifco init_loop}       ;skip comments in .cfg
  44.          {comp line}     {ifco init_loop}       ;skip blank lines in .cfg
  45.          {inst line,,}   {ifco ,init_loop}      ;comma reqd in active .cfg line
  46.          {setv pos,%_pos}       {decr pos}
  47.          {subs var,1,%pos,%line}
  48.          {inst line,  }  {ifco ,no_com}         ;two consecutive spaces separate
  49.          {subs line,1,%_pos,%line}              ; variable def'n from comment
  50.  {:no_com}
  51.          {inst line,,}
  52.          {setv pos,%_pos}       {incr pos}
  53.          {leng %line}
  54.          {setv len,%_len}       {decr len,%pos}
  55.          {subs valu,%pos,%len,%line}
  56.          {setv %%var,%valu}                     ;setv according to .cfg
  57.          {goto init_loop}                       ;loop until .cfg all read
  58.  
  59.  {:upgrade}                                     ;if old .cfg is found make
  60.          {setv ug,y}                            ; a new one for this version
  61.          {macl cs-mac.mac,upgrade}
  62.  {:new_user}                                    ;if *NO* .cfg is found make one
  63.          {setv new,y}                           ;autoload macro menu; new user
  64.          {macl cs-mac.mac,new_user}
  65.  
  66.  {:alcc} {capt n,%cap}                          ;capture filename from .CFG
  67.          {setv-e _uselog,DSZLOG}                ;DSZlog info > COMMO.LOG
  68.  {:alc}                                         ;CLEAR function ...
  69.          {parm ,,,,0}                           ; plus resets directories
  70.          {setv abbr}    {setv bbsid}            ; and working variables
  71.          {setv line}    {setv var}
  72.          {setv valu}    {setv ver}
  73.          {setv ring,0}  {setv set}              ;Autopilot ring counter
  74.          {setv pmail}                           ;ZIPNews personal mail flag
  75.          {setv rflag,aln}                       ;return flag for multidial
  76.          {clea}  {disp 1,1}
  77.          {comp new,y} {ifco alm}                ;New user taken directly to menu
  78.          {comp ug,y}  {ifco alm}                ;Upgrade  taken directly to menu
  79.  {:no_new}
  80.         {comp auto,y}{ifco auto}                ;Is autopilot enabled?
  81.                                                 ;END of startup macro
  82.  {:retu} {retu}                                 ;Very handy labelname
  83.                                                                                 macr_do
  84.  Run a Macro               Choose Macro to Run
  85.  
  86.                          ╒═══════════════════════╕
  87.  Add BBSID to COMMO.FON  │ CS-MAC.MAC,new_bbsid  │  {macl cs-mac.mac,new_bbsid}
  88.  New modem config        │ CS-MAC.MAC,modem      │  {macl cs-mac.mac,modem}
  89.  Run Agenda Generator    │ CS-MAC.MAC,s_menu     │  {setv auto} {macl cs-mac.mac,s_menu}
  90.  Run ACTION processor    │ ACTION.MAC,action     │  {macl action.mac,action}
  91.  Macro under development │ HOLO.MAC,start_ho     │  {macl holo.mac,start_ho}
  92.  Strip comments from MAC │ CS-MAC.MAC,strip      │  {macl cs-mac.mac,strip}
  93.  Translate MODEMs.DAT    │ CS-MAC.MAC,x_late     │  {macl cs-mac.mac,x_late}
  94.  RingLOG Macro   {:sf5}  │ RINGLOG.MAC,g01       │  {setv set} {comp auto,y} {ifco auto} {macl ringlog.mac,g01}
  95.  DosFunc Macro   {:nf9}  │ DOSFUNC.MAC,g01       │  {macl dosfunc.mac,g01}
  96.  Make ACTION     {:alf}  │ ACTION.MAC, alf       │  {macl action.mac,alf}
  97.  Load HOST Mode  {:af5}  │ MACROBBS.MAC,bbs      │  {macl macrobbs.mac,bbs}
  98.                          │ EDIT File Menu        │  {call ale} {}
  99.                          ╘═══════════════════════╛
  100.  
  101.  
  102.  
  103.  
  104.  
  105.                                                                                 upld
  106. Send a File                      UpLoad Protocols
  107.  
  108.                                 ╒════════════════╕
  109.                                 │  Zmodem        │                              {call cpu} {setv file} {exec-n %z_prog port %_por ha bo sz -m @%_hom%files.zup} {}
  110.                                 │  Zmodem/REP    │                              {inpu bbsid,.REP to Upload} {ifex %repdr\%bbsid.rep,,no_rep} {exec-N %z_prog port %_por ha bo sz -mu %repdr%\%bbsid%.rep} {:no_rep} {}
  111.                                 │  Ymodem/G      │                              {call cpu} {setv file} {symo-gk @%_hom%files.zup} {}
  112.                                 │  1k-Xmodem     │                              {setv proto,1K-Xmodem} {call gfnu} {sxmo-k %file}  {setv proto}  {}
  113.                                 │  Xmodem CRC    │                              {setv proto,Xmodem-CRC}{call gfnu} {sxmo %file}    {setv proto}  {}
  114.                                 │  HS/Link       │                              {call cpu} {setv file} {exec-n %dosdir%\hslink.exe -@ -I2 -NV -P%_por% @%_hom%files.zup} {}
  115.                                 │                │
  116.                                 │  ASCII         │                              {setv proto,ASCII} {call gfnu} {ascii-e %file}                   {}
  117.                                 ╘════════════════╛
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                                                                 downld
  128. Receive a File                 DownLoad  Protocols
  129.  
  130.                                 ╒════════════════╕
  131.                                 │  Zmodem        │                              {exec-n %z_prog port %_por rz -mr %dldir}  {}
  132.                                 │  Zmodem/QWK    │                              {exec-n %z_prog port %_por rz -m  %qwkdr}  {}
  133.                                 │  Ymodem/G      │                              {rymo-gy %dldir}  {}
  134.                                 │  1k-Xmodem     │                              {setv file,%dldir%\} {inpu file,Filename to Download (1k-Xmodem)}    {rxmo %file}    {}
  135.                                 │  Xmodem CRC    │                              {setv file,%dldir%\} {inpu file,Filename to Download (Xmodem CRC)}   {rxmo %file}    {}
  136.                                 │  HS/Link       │                              {exec-n %dosdir%\hslink.exe -@ -C -I2 -NV -P%_por% -R -O -K -U%dldir} {}
  137.                                 │  Ymodem        │                              {rymo-y %dldir}   {}
  138.                                 │  ASCII         │                              {call chm}        {}
  139.                                 ╘════════════════╛
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  {:alm}  {macr macr_do}   {retu}        ;Run a Macro menu
  150.  {:pgd}  {macr downld}    {retu}        ;Call Download Menu
  151.  {:pgu}  {macr upld}      {retu}        ;Call Upload Menu
  152.  {:cpu}  {exec-n cd %uldir}             ;Pick N Send
  153.          {exec-d %dosdir%\commopns.exe %_hom%files.zup -F}
  154.          {retu}
  155.  
  156.  ┌───────────────────────┐
  157.  │  Get Upload FileName  │
  158.  └───────────────────────┘
  159.   *  This version of :GFNU has some extra features.  If you omit the file
  160.   *  .extension, :gfnu looks for the file, adds ".ZIP" and looks for the file,
  161.   *  if the file doesn't exist, a masked directory list is presented to jog
  162.   *  your memory.
  163.  
  164.  {:gfnu} {sete-p0 retu}
  165.          {setv file,%uldir\%mask} {setv dmask} {setv mask}
  166.          {inpu file,Filename for %proto% upload (.ZIP default)}
  167.          {ifex %file,retu}
  168.          {leng %uldir}  {setv dr_len,%_len}
  169.          {leng %file}   {setv f_len,%_len}
  170.          {incr dr_len}  {decr f_len,%dr_len}  {incr dr_len}
  171.          {instring file,.}  {ifco chek}
  172.          {setv file,%file%.zip}
  173.  {:chek} {ifex %file,retu}
  174.  {:mask} {subs dmask,%dr_len,1,%file}
  175.          {subs mask,%dr_len,%f_len,%file}
  176.          {exec-nw5 dir %uldir%\%dmask%*.*}
  177.          {goto gfnu}
  178.  
  179.  ┌───────────────────────────────┐
  180.  │  Send DESC.SDI Automatically  │
  181.  └───────────────────────────────┘
  182.   *  This INSERT-key routine sends either desc.sdi or file_id.diz
  183.   *  If you use the INS routine immediatly after an upload, the
  184.   *  correct filename will already be in the input window.
  185.  
  186.  {:ins}  {ifca ,retu}                   ;Auto Insert file descriptions
  187.          {sete-p0 retu}
  188.          {comp file}    {ifco ,n_zup}
  189.          {ifex %_hom%files.zup,,retu}
  190.          {rope %_hom%files.zup}
  191.          {read file}    {rclo}
  192.  {:n_zup}{inpu file,Filename to search for description}
  193.          {comp file}    {ifco retu}     {ifex %file,,retu}
  194.          {exec-d %pk_un -v %file desc.sdi file_id.diz}
  195.          {ifer 1,retu}  {setv filen,file_id.diz}
  196.  {:add_dsc}
  197.          {exec-d %pk_un -v %file %filen}
  198.          {ifer 1,chk_sdi}
  199.          {exec-n %pk_un -o %file %ramdr\ %filen}
  200.          {rope %ramdr\%filen,retu}
  201.  {:diz_lp}
  202.          {setv filen}
  203.          {read line}    {send ~~%line|}
  204.          {goto diz_lp}
  205.  {:chk_sdi}
  206.          {setv filen,desc.sdi}
  207.          {goto add_dsc}
  208.  
  209.  ┌───────────────────────────┐
  210.  │  Select Upload Directory  │
  211.  └───────────────────────────┘
  212.   *  This Alt-U macro has a twist to it.  Pressing the ESCAPE key while in
  213.   *  the INPUt window doesn't exit.  Instead the ESCAPE key cycles through
  214.   *  a variety of U/L directory choices before exiting.
  215.  
  216.  {:alu}  {setv count,0}
  217.  {:conf} {incr count}
  218.          {sete-p0 ul%count}
  219.          {inpu uldir,Select Upload directory (omit trailing"\")}
  220.          {ifex %uldir\NUL,retu,alu}
  221.  {:ul1}  {setv uldir,%_hom}
  222.          {leng %_hom}           {setv len,%_len}
  223.          {decr len}             {subs uldir,1,%len,%uldir}
  224.          {setv len}             {goto conf}
  225.  {:ul2}  {setv uldir,%ramdr}    {goto conf}
  226.  {:ul3}  {setv uldir,%repdr}    {goto conf}
  227.  {:ul4}  {setv uldir,%dldir}    {goto conf}
  228.  {:ul5}  {retu}
  229.  
  230.  ┌──────────────────┐
  231.  │  File-Edit-Menu  │
  232.  └──────────────────┘
  233.  {:ale}  {setv _menu1, F   any File}
  234.          {setv _menu2, T   Table.mac}
  235.          {setv _menu3, L   Logon.mac}
  236.          {setv _menu4, A   Action.mac}
  237.          {setv _menu5, S   cS-mac.mac}
  238.          {setv _menu6, X   Xxxx.xxx}
  239.          {setv _menu7, M   Macrobbs.mac}
  240.          {setv _menu8, H   Holo.mac}
  241.          {setv _menu9, K   assign.Key}
  242.         {setv _menu10, D   aDdress book}
  243.         {setv _menu11, C   Commo.mac}
  244.         {setv _menu12, N   holo.mac NLBBS}
  245.         {setv _menu13, I   Ideas}
  246.         {setv _menu14, Q   Quiz.mac}
  247.         {setv _mlabel,ed_a,,ed_c,ed_d,,ed_f,ed_g,ed_h,ed_i,,ed_k,ed_l,ed_m,ed_n,,,ed_q,,ed_s,ed_t,,,,ed_x}
  248.          {menu 18,22, EDIT Menu }
  249.          {goto auto}
  250.  
  251.  {:ed_f} {call nf5} {goto auto}
  252.  {:ed_t} {exec-n %ext_ed %_hom%table.mac}    {goto auto}
  253.  {:ed_l} {exec-n %ext_ed %_hom%logon.mac}    {goto auto}
  254.  {:ed_a} {exec-n %ext_ed %_hom%action.mac}   {goto auto}
  255.  {:ed_s} {exec-n %ext_ed %_hom%cs-mac.mac}   {goto auto}
  256.  {:ed_x} {exec-n %ext_ed %_hom%xxxx.xxx}     {goto auto}
  257.  {:ed_m} {exec-n %ext_ed %_hom%macrobbs.mac} {goto auto}
  258.  {:ed_h} {exec-n %ext_ed %_hom%holo.mac}     {goto auto}
  259.  {:ed_k} {edit %_hom%assign.key}             {goto auto}
  260.  {:ed_d} {edit %savedir\address} {exec-n copy %savedir\address %utildir\phone.dir} {goto auto}
  261.  {:ed_c} {macl cs-mac.mac,ed_cmac}
  262.  {:ed_n} {exec-n %ext_ed %_hom%dl\test\*.mac}{goto auto}
  263.  {:ed_i} {exec-n %ext_ed %dldir\ideas}       {goto auto}
  264.  {:ed_q} {exec-n %ext_ed %_hom%quiz.mac}     {goto auto}
  265.  
  266.  ┌──────────────────────────────┐
  267.  │  Toggles and Autopilot mode  │
  268.  └──────────────────────────────┘
  269.  {:alt}  {togg}
  270.  {:a_yn} {setv _menu1,       Y yes}
  271.          {setv _menu2,       N no}
  272.          {setv _mlabel,,,,,,,,,,,,,,to_n,,,,,,,,,,,to_y}
  273.          {menu 6,23,Autopilot ON?}  {retu}
  274.  {:to_n} {setv auto} {setv set} {setv pmail} {setv ring,0} {retu}
  275.  {:to_y} {setv auto,y} {goto auto}
  276.  
  277.  ┌───────────────────────┐
  278.  │  Toggle CAPTURE mode  │
  279.  └───────────────────────┘
  280.   *  This capture function provides a TOGGLE.  Ctl-Home keystroke changes
  281.   *  the status of capture and provides datestamp marks in the capture file.
  282.  
  283.  {:chm}  {comp capture,on} {ifco cof}
  284.          {setv capture,on}
  285.          {capt y,%savedir\%_mon%%_day%.cap}
  286.          {exec-n echo OPENED  ■  %_dat %_tim^j>> %_cap}      {retu}
  287.  {:cof}  {setv capture}    {capture n}
  288.          {exec-n echo CLOSED  ■  %_dat %_tim^j■-■-■>> %_cap} {retu}
  289.  
  290.  ┌───────────────────────┐
  291.  │  Toggle Doorway Mode  │
  292.  └───────────────────────┘
  293.   *  This doorway mode toggle has a feature that you need to be aware of.
  294.   *  The %xpert% flag will make this macro run through a series of possible
  295.   *  "drop to DOS" commands for a variety of hosts (like the :alu macro).
  296.   *  If %xpert% is null, this function is a simple toggle.
  297.  
  298.  {:al=}  {comp dway}              {ifco ,ext}
  299.          {setv dway, }
  300.          {comp xpert}             {ifco door}
  301.          {setv count,0}
  302.  {:donf} {incr count}
  303.          {sete-p0 dw%count}
  304.          {inpu dway,Host Doorway Command?}
  305.          {comp dway}              {ifco retu}
  306.          {send %dway}                                   ;BBSware Drop to DOS command
  307.  {:door} {door-m0}                {}
  308.  {:dw1}  {setv dway,9 y|}         {goto donf}           ;Various BBSware
  309.  {:dw2}  {setv dway,aview|}       {goto donf}           ;Various BBSware
  310.  {:dw3}  {setv dway,d~~~~%pword2|}{goto donf}           ;"drop to DOS"
  311.  {:dw4}  {setv dway}              {retu}
  312.  {:ext}  {door-m0}
  313.          {setv dway}
  314.          {comp xpert}             {ifco retu}
  315.          {send exit|}                                   ;Return from DOS to BBSware
  316.          {retu}
  317.  ┌───────────────────┐
  318.  │---*  General  *---│
  319.  └───────────────────┘
  320.  {:alw}  {setv file}                                    ;Any Command at all
  321.          {inpu file,Enter any DOS Command:}
  322.          {comp file} {ifco retu} {exec-W %file} {}
  323.  {:gr*}  {:cla}                                         ;Test Command here
  324.          {disp ,,,This key is used to test any command}
  325.          {retu}
  326.  ┌──────────────────────────┐
  327.  │---* Terminal Control *---│
  328.  └──────────────────────────┘
  329.  {:al0}  {ligh}   {retu}                                ;Toggle Signal Lights
  330.  {:al3}  {soun}   {retu}                                ;Toggle Mister Sound
  331.  {:al6}  {loca}   {retu}                                ;Toggle Local Echo
  332.  {:all}  {dpar}   {capt}          {retu}                ;Access Connect Parms
  333.  {:al-}  {statusline}             {retu}                ;Toggle Status Line
  334.  {:alv}  {comp vid}               {ifco v_m1}           ;Toggle video mode
  335.          {vide-m0}{setv vid}      {retu}
  336.  {:v_m1} {vide-m1}{setv vid,1}    {retu}
  337.  ┌──────────────────────┐
  338.  │---* Send Strings *---│
  339.  └──────────────────────┘
  340.  {:nf1}  {ifca ,hlp}              {send ~~%name|} {retu};Send Name
  341.  {:nf2}  {send %_pas|}            {retu}                ;Send Password
  342.  {:nf0}  {ifca ,retu}                                   ;Send Signature
  343.  {send                                                     %sig%|~|~SN|}{}
  344.  ┌───────────────────┐
  345.  │---* Utilities *---│
  346.  └───────────────────┘
  347.  {:af1}  {exec-d %z_prog t -8g}                  {retu} ;DSZ terminal shell
  348.  {:cf5}  {:cky}  {exec-d %utildir%\dfr.com}      {retu} ;Directory Freedom
  349.  {:nf3}  {setv file,%dldir%\}                           ;External List Pgm
  350.          {inpu file,File to List}
  351.          {exec-d %ext_li %file}                  {retu}
  352.  {:nf5}  {setv file,%dldir%\}                           ;External Editor Pgm
  353.          {inpu file,File to Edit}
  354.          {exec-d %ext_ed %file}                  {retu}
  355.  {:nf6}  {setv file}                                    ;Dial Phone for voice
  356.          {inpu file,Name or Number to Call}             : uses PHONE.EXE
  357.          {comp file}  {ifco retu}
  358.          {exec-n phone %file}                    {retu}
  359.  {:nf4}  {shel}                                         ;Shell To DOS
  360.          {subs dr,1,1,%_hom}                            ;Now, return to Commo
  361.          {exec-n %dr:}                                  ; home directory
  362.          {leng %_hom}{setv len,%_len}
  363.          {decr len}
  364.          {subs hom,1,%len,%_hom}
  365.          {exec-n cd %hom}
  366.          {setv dr}    {setv len}    {setv hom}
  367.          {retu}
  368.  {:alj}  {exec-w15 mjog /l}                      {retu} ;Mjog
  369.  {:als}  {exec-w15 set}                          {retu} ;See DOS Environment
  370.  {:al<}  {setv file} {inpu file,See What Variable?}     ;See a Commo variable
  371.          {comp file} {ifco retu}
  372.          {setv-s value,%file}
  373.          {inpu %%file,Variable %file,%value} {retu}
  374.  {:al.}  {setv inpu} {inpu inpu,Variable,Setting}       ;Set a Commo variable
  375.          {comp inpu} {ifco retu}
  376.          {setv %%inpu}    {retu}
  377.  {:al/}  {setv file} {inpu file,GOTO ":routine"}        ;Goto a Commo Routine
  378.          {comp file} {ifco retu}
  379.          {rope %_mac,retu}
  380.  {:gto_loop}
  381.          {read line}
  382.          {inst line,:%file}
  383.          {ifco ,gto_loop}
  384.          {rclo}
  385.          {goto %file}
  386.  {:alb}  {ifca ,backup}                                 ;Dual use Alt-B
  387.          {brea} {retu}                                  ; ONLINE = Break
  388.  {:backup}
  389.          {exec-n %pk_zip -a %savedir\mac %_hom%*.mac}   ;Backup Commo Macros
  390.          {exec-n copy %savedir\mac.* %bu_dr}            ;and personal business
  391.          {comp xpert,y} {ifco ,retu}
  392.          {exec-n %pk_zip -a %dldir\estate %dldir\estate %dldir\706}
  393.          {exec-n copy %dldir\estate.z?p %bu_dr}
  394.          {exec-n %pk_zip -a %savedir\$$ g:\q5\home.* g:\q5\trust.*}
  395.          {exec-n copy %savedir\$$.z?p %bu_dr}
  396.          {retu}
  397.  ┌────────────────────────────────────────┐
  398.  │---* Commo Help and quick reference *---│
  399.  └────────────────────────────────────────┘
  400.  {:alk}  {exec-w60 type %_hom%assign.key}        {retu} ;Show Key Assignments
  401.  {:hom}  {exec-d %ext_li %ins_dir\*.doc}         {retu} ;List Commo DOCS
  402.  {:alh}  {ifca ,hlp} {hang}                      {retu} ;Dual use of Alt-H
  403.  {:hlp}  {help 0}                                {retu} ; Hangup or HELP
  404.  ┌─────────────────────────┐
  405.  │---* Session History *---│
  406.  └─────────────────────────┘
  407.  {:upa}  {screen n,%savedir\savescro} {scro}     {retu} ;Enter  Scrollback
  408.  {:dna}  {exec-d %ext_ed %_cap}                  {retu} ;Edit   Capture File
  409.  {:lfa}  {exec-d %ext_li %_cap}                  {retu} ;List   Capture File
  410.  {:rta}  {exec-d %ext_li %savedir\*.cap}         {retu} ;Review Past Capture
  411.  {:gr+}  {screen y,%savedir\commo.scn}           {retu} ;Capture Screen
  412.  {:gr-}  {edit %savedir\commo.scn}               {retu} ;Show Screen Capture
  413.  {:alr}  {exec-d %ext_li %_uselog}               {retu} ;Review Call Log
  414.  {:end}  {inpu abbr,Which 2-letter ACTION File?}        ;Edit  ACTION File
  415.          {edit %_hom%action.%abbr}               {retu}
  416.  {:al1}  {inpu abbr,Show ->%abbr%<- ACTION}             ;Show ACTION history
  417.          {comp abbr} {ifco retu}
  418.          {subs abbr,1,2,%abbr}
  419.          {exec-d %ext_li %savedir\*.%abbr}       {retu}
  420.  ┌──────────────────────────────────────────┐
  421.  │---* Directly view specific filenames *---│
  422.  └──────────────────────────────────────────┘
  423.  {:cf9}  {exec-d %ext_li %savedir\answer1}       {retu} ;View ANSWER1
  424.  {:cf0}  {exec-d %ext_li %savedir\*.log}         {retu} ;View COASTAL .log files
  425.  ┌──────────────────────────┐
  426.  │---* Messaging macros *---│
  427.  └──────────────────────────┘
  428.  {:sf3}  {exec-n %reader}                        {retu} ;Run Mail Reader Pgm
  429.  {:ala}  {ifca ,a_yn}  {asci %dldir%\,:}         {retu} ;Ascii Upload
  430.  {:alo}  {scre n,%_hom%quote.in}                        ;Capture/Quote Message
  431.          {scro} {edit %_hom%quote.in}
  432.          {ifex %_hom%quote.in,,equote}
  433.          {rope %_hom%quote.in,equote}
  434.  {:nline}{read line} {send ~-> %line%|}
  435.          {goto nline}
  436. {:equote}{send  ~|}  {exec-n del %_hom%quote.in} {retu}
  437.  
  438.  {:cf6}  {inpu bbsid,Note to Edit?}                     ;Edit Notefile
  439.          {edit %savedir\%bbsid%}
  440.          {retu}
  441.  ┌────────────────────┐
  442.  │---* Play Space *---│ {:alp} {macr playsp} {}
  443.  └────────────────────┘
  444.   *  This area is useful for playing with new macro ideas.
  445.   *  It is easily accessed with Alt-P
  446.   *  {disp ,,,Hi %name%!} {}
  447.  
  448.  ┌───────────────────────────────────────────────┐
  449.  │  Send a random Tagline from your Mail Reader  │
  450.  └───────────────────────────────────────────────┘
  451.  
  452. !{:cnd}  {setv line,30}          ;set the number of lines in tagfile
  453.          {setv sec,%_sec}        ;maximum 60 lines
  454.          {divi sec,%line}        ;divide a number from 0 to 60
  455.                                  ; by #lines in tagfile.
  456.          {setv rem,%_rem}        ;the remainder is a
  457.          {incr rem}              ;pseudo random # from 1 to %line
  458.          {rope %tagfile,s_tag}
  459.          {setv count,1}
  460.  {:t_loop}
  461.          {read line}             ;read a tagline
  462.          {comp count,%rem}       ;compare currrent line# with random#
  463.          {ifco-E s_tag}          ;if same, send_tagline
  464.          {incr count}            ;otherwise read next tagline
  465.          {goto t_loop}
  466.  {:s_tag}
  467.          {send %line}            ;send the tagline
  468.          {rclo}                  ;clean up open files
  469.          {setv sec} {setv rem}   ;and variables
  470.          {retu}
  471.  
  472.  ┌────────────────────────────────────────────────────────┐
  473.  │  An automatic ASCII message entry system for PCBoards  │
  474.  └────────────────────────────────────────────────────────┘
  475.  
  476.  {:nf8}  {setv file,%dldir%\} {inpu file,Name of Upload Message}
  477.          {ifex %file%,,n_e}
  478.          {parm ,,,,2}  {send e|}  {asci %file%,}
  479.          {parm ,,,,0}  {send ~~|~~~sn|}
  480.          {look %bbs_pmt}
  481.          {disp ,,,^j^j}
  482.          {disp ,18,1E,▌ Erase %file%? [Y/n] ▐^m}
  483.          {setl 5,y_d,,}
  484.          {golo y_d,y}
  485.          {golo n_e,n}
  486.          {look 'N' Skips Message Delete}
  487.  {:y_d}  {exec-n del %file}
  488.  {:n_e}  {send ^h}{disp ,18,,                                 ^m}{}
  489.  
  490.  ┌──────────────────────────────────────────────┐
  491.  │  A guarded Alt-X command when leaving Commo  │
  492.  └──────────────────────────────────────────────┘
  493.  
  494.  {:alx}  {setv xtime,10}                        ;set time-to-exit
  495.          {setv count,0}
  496.          {sete-p0 noex}
  497.          {disp 24,1,74,  EXIT ^(Commo^) at "%xtime" > }
  498.          {disp ,,70,   Are you Sure? (Y/n) }
  499.          {disp 24,26}
  500.          {incr xtime}
  501.          {setv count,0}   {setv resp}           ;initialize variables
  502.  {:xlop} {setg 1,upct,n}  {gets-h %resp,1,q_t}  ;set up 1 second wait
  503.          {comp %resp,n}   {ifco noex}           ;compare response
  504.          {comp %resp,y}   {ifco q_t}            ;if resp = y, goto :q_t
  505.  {:upct} {disp 24,26,71,%count}   {disp 24,26}
  506.          {incr %count}    {comp %count,%xtime}
  507.          {ifco-G q_t,xlop}                      ;loop or :q_t
  508.  {:noex} {disp 24,1,,                                                  ^m}
  509.          {setv xtime}
  510.          {retu}                                 ;decided to stay
  511.  {:q_t}  {exit}                                 ;normal exit from Commo
  512.  
  513.  ┌────────────────────────────────────────┐
  514.  │  A tool to search a file for a string  │
  515.  └────────────────────────────────────────┘
  516.  
  517.  {:cf3}  {inpu file,Name to search from ADDRESS book}
  518.          {comp file}
  519.          {ifco retu}
  520.          {call search}
  521.          {setv oldrow,%_row}       {setv oldcol,%_col}
  522.          {setv row,%_row}          {decr row,2}
  523.          {disp %row,1,07,                                                                                ^j}
  524.          {comp addr}               {ifco retu}
  525.          {disp %row,1,20,%addr }   {disp %oldrow,%oldcol}
  526.          {setv addr} {setv oldcol} {setv row}
  527.          {setv file} {setv oldrow} {retu}
  528.  {:search}
  529.          {rope %savedir\address,retu}
  530.  {:aloop}
  531.          {read addr}
  532.          {inst addr,%file}          {ifco ,aloop}
  533.          {rclo}     {retu}
  534.  
  535.  ┌────────────────────────────────────────────────────┐
  536.  │  Download list tagging using COMMO built-in tools  │
  537.  └────────────────────────────────────────────────────┘
  538.   *   Featuring dual-function   Alt-D   depending on ON/OFF line Status
  539.  
  540.  {:ald}  {ifca mlist}            ;Alt-D first checks for CARRIER
  541.          {dial}{retu}            ;If NO, bring up dialing directory
  542.  
  543.  {:mlist}{scre n,%_hom%dl-list}  ;If CARRIER ONLINE, name screen image
  544.          {scro}                  ;Enter scrollback mode:
  545.   *                              ;  This is where you will tag files
  546.   *                              ;  Use the "W" facility in scrollback
  547.   *                              ;  Press C/R twice on each file to tag
  548.   *                              ;  Press ESC to quit tagging.  Next,
  549.          {edit %_hom%dl-list}    ;Enter COMMO's built-in editor:
  550.   *                              ;  Add or delete file names, 1 per line
  551.   *                              ;  Description text will be stripped
  552.   *                              ;  later in the macro.
  553.          {rope %_hom%dl-list}    ;Open just made list
  554.          {read line}             ;Read the first line
  555.          {rclo}                  ;Close the list
  556.          {comp line}             ;Is the first line empty?
  557.          {ifco retu}             ;If so, quit.  Otherwise go on.
  558.          {setv file}
  559.          {inpu file,C/R to Start DownLoad Now}   ;A chance to exit
  560.          {comp file}  {ifco go-dl}      {retu}   ;  before start of d/l.
  561.  
  562.  {:go-dl}{send d|}               ;To the BBS, the download command
  563.   *                              ; (or use the FLAG command)
  564.          {rope %_hom%dl-list,end-dl}     ;Open file list for reading
  565.  {:next-1}
  566.          {read file}             ;Read one complete line into %file%
  567.          {subst file,1,12,%file} ;Strip all but first 12 characters
  568.          {send ~~~%file%|}       ;Send filename to BBS
  569.          {goto next-1}           ;Repeat read unti dl-list is all read
  570.  {:end-dl}
  571.          {exec-n del %_hom%dl-list}      ;Delete the list after sending
  572.          {send ~|}  {retu}       ;This macro is ended.
  573.   *                              ;Waiting for Auto-Zmodem d/l?
  574.  
  575.  ┌─────────────────────────────┐
  576.  │  REP Mark and Dial Routine  │
  577.  └─────────────────────────────┘
  578.   *  This automatic mark-and-dial routine will send your .REP files
  579.   *  It bypasses .QWK download questions with the "SKIP" facility
  580.  
  581.  {:sf4}  {unma}
  582.          {ifex %repdr\*.rep,rep_mark}
  583.          {exec-n del %ramdr\rep_dir}
  584.          {setv skip}
  585.          {goto auto}
  586.  {:rep_mark}
  587.          {exec-n dir %repdr\*.rep > %ramdr\rep_dir}
  588.          {setv skip,y}
  589.          {rope %ramdr\rep_dir,aln}
  590.  {:r_loop}
  591.          {read file}
  592.          {inst file,rep} {ifco ,r_loop}
  593.          {subs file,1,6,%file}
  594.          {mark %file}    {goto r_loop}
  595.  
  596.  ┌────────────────────────────────────────┐
  597.  │  Return Point from cs-mac agenda menu  │
  598.  └────────────────────────────────────────┘
  599.  
  600.  {:do_agenda}
  601.          {comp hold}     {ifco retu}
  602.          {hold %hold}    {clea}
  603.          {goto aln}
  604.  
  605.  ┌───────────────────────────────┐
  606.  │  Return Point From LOGON.MAC  │
  607.  └───────────────────────────────┘
  608.  
  609.  {:aln}   dial-c 45,      goto auto     ;Optional simple Multi-dial & Return
  610.  
  611.  ┌────────────────────────────────────────┐
  612.  │  Dialing Marco for BBS Mailrun Events  │   Adapted From: TIM SAARI
  613.  └────────────────────────────────────────┘
  614.   *  If you enclose the above "(dial-c 45,) (goto auto)" in curly braces
  615.   *  the more complex dialer below will be disabled.
  616.  
  617.          {parm 19200}
  618.          {setv row,%_row}
  619.          {setv col,%_col}
  620.          {sete-p0 auto}
  621.          {disp 18,10,,                         }
  622.          {disp 19,10,,                                                               }
  623.          {disp %row,%col}
  624.          {setd 45,8}
  625.          {setv busy,0}
  626.          {setv nodt,0}
  627.          {setv voic,0}
  628.          {setv carr,0}
  629.  
  630.  {:redial}
  631.           dial-c 1,,seeya
  632.          {dial-c 1,}
  633.          {comp _dtc,0}                  {ifco auto}     ;no systems marked
  634.          {disp 18,23,0A,                 }
  635.          {disp 18,10,0A,Last Attempt: %_dialrt }
  636.          {disp %row,%col}
  637.          {comp _dialrt,BUSY}            {ifco incbusy}
  638.          {comp _dialrt,NO DIAL TONE}    {ifco incnodt}
  639.          {comp _dialrt,VOICE}           {ifco incvoic}
  640.          {comp _dtc,3}                  {ifco inccarr}  ;dialer timed out
  641.          {comp _dtc,4}                  {ifco redial}   ;operator intervention
  642.  {:incbusy}
  643.          {incr busy}
  644.          {disp 19,10,0B,Busy: %busy}
  645.          {disp %row,%col}
  646.          {comp busy,45}   number of redials for a BUSY result code
  647.          {ifco auto,redial}
  648.  {:inccarr}
  649.          {incr carr}
  650.          {disp 19,61,0B,No Answer: %carr}
  651.          {disp %row,%col}
  652.          {setv _dialrt,NO ANSWER}
  653.          {comp carr,5}                  ;unmark on fifth NO ANSWER
  654.          {ifco ,redial}
  655.          {unma-l} {goto redial}
  656.  {:incnodt}
  657.          {incr nodt}
  658.          {disp 19,22,0B,No Dial Tone: %nodt}
  659.          {disp %row,%col}
  660.          {comp nodt,10} ;number of redials for a NO DIAL TONE result code
  661.          {paus 120}
  662.          {ifco auto,redial}
  663. {:incvoic}
  664.          {incr voic}
  665.          {disp 19,46,0B,Voice: %voic}
  666.          {disp %row,%col}
  667.          {comp voic,10} ;number of redials for a VOICE result code
  668.          {ifco ,redial}
  669.          {unma-l} {goto redial}
  670.  
  671.  ┌────────────────────────────────┐
  672.  │  Event Outdial Interupt Macro  │
  673.  └────────────────────────────────┘
  674.  {:seeya}{disp ,,,%_dialrt}
  675.          {loca n}
  676.          {send ata|}
  677.          {loca y}
  678.          {setg ,,l,^M^J}
  679.          {gets constr,40}
  680.          {pause 12}
  681.          {send %constr%^M^J}
  682.          {send You have connected during an attemped mail run.^M^J}
  683.          {send Please try again later.  See ya.^M^J}
  684.          {pause 9}
  685.          {hang y}
  686.          {look carrier}
  687.          {loca n}{retu}
  688.  
  689.  ┌─────────────┐
  690.  │  Autopilot  │
  691.  └─────────────┘
  692.   *  This routine is intended to be always running.
  693.   *  It is active only when the internal variable %auto% = y
  694.   *  If active, can be started with Alt-C or Alt-N (and stopped with "A").
  695.   *  If inactive, can be started with Alt-T or Alt-A.
  696.   *  It can start any event at a specified time of the day.
  697.   *  It can run a different event on a particular day of the week.
  698.   *  While running, :auto logs rings of the phone to a log.
  699.   *  Enters an auto-answer mode if it receives a single ring.
  700.   *    Exits auto-answer mode after 35 seconds of inactivity.
  701.   *
  702.   *  You need to edit the autopilot to setup events and event timing.
  703.  
  704.  ┌──────────────────────────────────────┐
  705.  │  Autopilot converted to Simple Host  │
  706.  └──────────────────────────────────────┘
  707.   *  The core of the autopilot routine is later on.  This subroutine will
  708.   *  answer the phone on a pattern of  "RING; wait 10-45 seconds; RING RING"
  709.   *  You need a file called PASSWORD in your Commo home directory.
  710.   *  The first line of the PASSWORD file is the HOST access protection.
  711.  
  712.  {:ans}  {disp 25,1,17,░░░░   ^(Commo^) Autopilot          }
  713.          {disp 25,34,1e,Waiting for 2 RINGs          }
  714.          {disp 25,63,17,%_12h%:%_min%.%_sec %_amp%   ░░░░}
  715.          {disp %row,%col}
  716.          {setl 35,auto}                         ;35 seconds in callwait mode
  717.          {setv set,y}                           ;flag indicates callwait set
  718.          {look ring}
  719.          {disp 25,34,1f,Waiting for 1 RING  }
  720.          {disp %row,%col}
  721.          {look ring}
  722.          {spdc y}
  723.          {send ~ATA~|}
  724.          {disp 25,34,1b,Waiting for CONNECT }
  725.          {disp %row,%col}
  726.          {look CONNECT}
  727.          {disp 25,34,1c,Waiting for Password}
  728.          {disp %row,%col}
  729.          {send ~~Hello^j^j|Enter Password: }
  730.          {paus 1}
  731.          {setg 15,gbye,n}
  732.          {gets-p pass,8,gbye}
  733.          {ifex %_hom%password,,gbye}            ;quit if password file=NUL
  734.          {rope %_hom%password}
  735.          {read password}
  736.          {rclo}
  737.          {comp pass,%password}
  738.          {ifco ,gbye}
  739.          {setv pass}
  740.          {setv password}
  741.          {ifca ,nf4}                            ;for local HOST testing
  742.          {exec %utildir\doorway com%_por /m:60 /g:on /a:on /v:d^u /o:t /s:* /c:dos}
  743.          {paus 2}
  744.          {send ~~~~^m^jSee you later %name%^m^j~~}
  745.  {:gbye} {hang y}
  746.          {paus 5}
  747.          {goto auto}                            ;return to Autopilot
  748.  
  749.  ┌────────────────────────────────┐
  750.  │  RingLog portion of Autopilot  │
  751.  └────────────────────────────────┘
  752.   *  Sort of an expensive answering machine enhancement.
  753.   *  This section of Autopilot logs telephone rings to a save file.
  754.  
  755.  {:r_log}{exec-N echo Your Phone rang: %_dat at %_24h%:%_min%:%_sec% >> %savedir\ring.log}
  756.          {incr ring}
  757.          {incr ring_c}
  758.          {disp %row,%col}
  759.  {:nlop} {setl 10,ilop}          ;After 10 seconds, return to outer loop
  760.          {golo r_log,RING}
  761.          {look Inside r_log now}
  762.  
  763.  ┌─────────────────────────────────────────┐
  764.  │  Set Autopilot Keyboard responses here  │
  765.  └─────────────────────────────────────────┘
  766.   *  Autopilot can respond to hot-key strokes from the keyboard.
  767.  
  768.  {:iale} {call e_auto} {call ale}  {goto auto}  ;Edit menu on  "E"
  769.  {:ialm} {call e_auto} {call alm}  {goto auto}  ;Macro edit on "M"
  770.  {:iald} {call e_auto} {call ald}  {goto auto}  ;Dialer on     "D"
  771.  {:ialf} {call e_auto} {call alf}  {goto auto}  ;Filelist on   "F"
  772.  {:ials} {call e_auto} {call nf4}  {goto auto}  ;Shell to DOS  "S"
  773.  {:iala} {call e_auto} {goto a_yn}              ;Autopilot OFF "A"
  774.  {:ialx} {call e_auto} {call alx}  {goto auto}  ;Exit Commo on "X"
  775.  {:ialk} {scro}        {goto ilop}              ;Scrollback on "K"
  776.  
  777.  {:ialc} {exec-d %ext_li %_uselog} {goto ilop}  ;Call Log on   "C"
  778.  {:ialb} {call e_auto} {call alb}  {goto auto}  ;Backup on     "B"
  779.  
  780.  {:lll}  {keys 76e0,51e0,4fe0}                  ;Edit log on   "L"
  781.          {edit %savedir\ring.log} {goto ilop}
  782.  
  783.  {:e_auto}                                      ;End Autopilot subroutine
  784.          {stat y}
  785.          {setv ring_c}
  786.          {disp %row,%col,, ^h}   {retu}
  787.  
  788.  ┌──────────────────────────┐
  789.  │  Autopilot Core Routine  │
  790.  └──────────────────────────┘
  791.   *  This is the core of the autopilot routine.
  792.   *  Near the end of the core you will see the setting of event times as
  793.   *  well as the event definitions.
  794.  
  795.          {exec time}             ;start here to test your event additions
  796.  {:auto} {comp auto,y}           ;CS-MAC starts Autopilot here
  797.          {ifco ,retu}
  798.          {ifca retu}             ;don't run autopilot when ONLINE
  799.          {sete-p0 e_auto}
  800.          {disp 23,1}
  801.          {setv row,%_row}
  802.          {setv col,%_col}
  803.          {setv ring_c,0}
  804.          {stat n}
  805.          {disp 25,1,4f,░░░░   ^(Commo^) Autopilot          }
  806.          {disp 25,34,4e,ESCape quits                 }
  807.  
  808.  {:ilop} {disp 25,63,4f,%_12h%:%_min%.%_sec %_amp%   ░░░░}
  809.          {comp pmail}   {ifco no_p}      {disp 25,76,4d,P}
  810.  {:no_p} {comp set}     {ifco nostar}    {disp 25,75,4c,*}
  811.  {:nostar}
  812.          {comp ring,1}  {ifco-l noring}
  813.          {disp 25,56,47,Rings} {disp 25,53,4b,%ring}
  814.  {:noring}
  815.          {disp %row,%col,, ^h}
  816.          {comp ring_c,1}         {ifco-e ans}   ;Goto simple host on 1 ring
  817.          {setv ring_c,0}
  818.          {setl 10,ilop}          ;lookfor . . . indefinitely
  819.          {setv time,%_24h%:%_min}
  820.  
  821. !    Any required editing is BELOW this line.
  822.  
  823. !        {comp time,05:30} {ifco ev_1}          ;Event 1 time here
  824. !        {comp time,18:00}  ifco ev_2           ;Event 2 time here
  825. !        {comp time,23:59} {ifco ev_3}          ;Event 3 time here
  826. !        {comp time,01:11} {ifco ev_4}          ;Event 4 time here
  827.  
  828. !        {golo r_log,RING}       ;log "RING"
  829.                                  ; (use your particular modem string)
  830.  
  831.          {golo lll,l}            ;List RING.LOG on     "L"
  832.          {golo iale,e}           ;Editor menu on       "E"
  833.  
  834.          {golo ialm,m}           ;Macro editor on      "M"
  835.          {golo iald,d}           ;Dialing directory on "D"
  836.          {golo ialf,f}           ;Make action file on  "F"
  837.  
  838.          {golo ials,s}           ;Drop to DOS on       "S"
  839.          {golo iala,a}           ;Autopilot Toggle on  "A"
  840.          {golo ialx,x}           ;Goto Exit routine on "X"
  841.  
  842.          {golo ialk,k}           ;Scrollback on        "K"
  843.          {golo ialc,c}           ;Review call log on   "C"
  844.          {golo ialb,b}           ;Backup files         "B"
  845.  
  846.          {look Something that won't happen}   {goto auto}
  847.  
  848.  ┌────────────────────────────────────────┐
  849.  │  Set Autopilot Event definitions here  │
  850.  └────────────────────────────────────────┘
  851.   *  Event_1 goes to label :sfa on Saturdays.  This marks a bunch of BBS
  852.   *  numbers for a weekend mailrun.  If it isn't Saturday, goto :nfa instead.
  853.   *  Event_2 happens later in the day.  This is an Internet mailrun.
  854.   *  Event_3 looks for .REP files and sends them at midnight.
  855.   *  You could set other events (backups for example).
  856.  
  857. !{:ev_1} {call e_auto} {comp _dwn,6} {ifco sfa,nfa}     ;see mark-and-dial
  858. !{:ev_2} {call e_auto} {call afb}    {goto auto}        ;area for these labels
  859. !{:ev_3} {ifex %repdr\*.rep,,nlop}   {call e_auto} {goto sf4}
  860. !{:ev_4} {call e_auto} {call alb}    {goto auto}
  861.  
  862.  ┌────────────────────────┐     ┌───────────────────────┐
  863.  │  Links from COMMO.FON  │     │  Generic Logon Alone  │
  864.  └────────────────────────┘     └───────────────────────┘
  865.   *  By using these three character linked macro names in your .FON directory
  866.   *  you will be able to logon automatically to each of these BBS types.
  867.   *  These logons will get you as far as the Main Board Command Prompt
  868.   *  (No mail fetching will occur).
  869.   *  COMMO.MAC gets some prompt information from TABLE.MAC then jumps
  870.   *  to the generic logon routine in LOGON.MAC.
  871.  
  872.  {:pcb}  {macl table.mac,pcb}           ;PCBoard v14.5
  873.  {:rma}  {macl table.mac,rma}           ;Remote Access
  874.  {:tag}  {macl table.mac,tag}           ;T.A.G.
  875.  {:s-f}  {macl table.mac,s-f}           ;Spitfire
  876.  {:gap}  {macl table.mac,gap}           ;GAP
  877.  {:wc!}  {macl table.mac,wc!}           ;Wildcat!
  878.  {:mac}  {macl table.mac,mac}           ;MacroBBS
  879.  {:max}  {macl table.mac,max}           ;Maximus BBS
  880.  
  881.  ┌──────────────────────────────────┐
  882.  │  .FON -> COMMO.MAC -> TABLE.MAC  │
  883.  └──────────────────────────────────┘
  884.   *  :qwk is the standard mailrun link to have in your .FON directory.
  885.  
  886.  {:qwk}  {macl table.mac,qwk}           ;fetch BBS particulars
  887.  
  888.  ┌──────────────────────────┐
  889.  │  Mark and Dial routines  │
  890.  └──────────────────────────┘
  891.   *  These are quite specific to a COMMO.FON dialing directory.
  892.   *  That's why you need to edit this area.
  893.   *  Note the use of %rflag% to control dialing sequence.  This is required
  894.   *  because linked dialing macros jump to TABLE.MAC then to LOGON.MAC.
  895.   *  LOGON.MAC returns to position ":%rflag" in this file (COMMO.MAC).
  896.  
  897.   *  If you run on Autopilot, you will probably be calling some of these
  898.   *  "mark and dial" routines.
  899. !    If you don't run Autopilot, all editing is below this line
  900.  
  901. !{:nfb}  {unma}   {mark de2,de3}         {goto aln}
  902. !{:nf7}  {unma}   {mark Weather}         {goto aln}
  903. !{:nfa}  {mark weather}
  904. !        {setv rflag,001}
  905. !        {setv skip}                     {goto aln}
  906. !{:001}  {mark de2,de3}
  907.          {setv rflag,aln}                {goto aln}
  908. !{:cfa}  {unma}    {mark ledge,datawarp} {goto aln}
  909. !{:sfa}  {mark de2,de3,maine,smvti,wolf's,direct,dataw,ledge,babb,after5,foxhole,weather}
  910.          {disp 6,21,1f,║   Weekend!  Dial All ■ marked BBS's    ║}
  911.          {setv skip}                     {goto aln}
  912. !{:sf1}  {unma}   {mark Node4}           {dial 15}             {}
  913. !{:sf2}  {unma}   {mark Director}        {dial 15}             {}
  914. !{:wtr}  {macl weather.mac,wtr}
  915.  
  916.  ┌────────────────────────────────────────┐
  917.  │  Mail Run Link from .FON to TABLE.MAC  │
  918.  └────────────────────────────────────────┘
  919.   *  With this tool you can mark multiple nodes of one BBS but make only one
  920.   *  connect per BBS.  After connecting, the macro unmarks nodes named here.
  921.   *  After unmarking .FON entries, goto :qwk for routine logon and mail process.
  922.  
  923. !{:nlb}  {unma de2,de3} {goto qwk}      ;manipulate .FON
  924.